#include<bits/stdc++.h>
#define ___ "-------------------------------\n"
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll maxn = 100000 + 5;

class Solution {
public:
    int divide(int a, int b)
    {
        if (a == INT_MIN && b == -1) {
            return INT_MAX;
        }
        if (b == 1) {
            return a;
        }
        if (b == INT_MIN) {      // 这个 if 的意义在于函数内部不将 int 扩展位数来处理 INT_MIN
            if (a == INT_MIN) {
                return 1;
            } else {
                return 0;
            }
            return 0;
        }
        bool flag = false; // 商是否为负
        int ans = 0;
        if ((a < 0 && b > 0) || (a > 0 && b < 0)) {
            flag = true;
        }
        b = abs(b);
        if (a == INT_MIN) {
            a += b;
            ans++;
        }
        a = abs(a);
        while (a >= b) {  // 每次循环减去 b 的最大的小于 a 的幂次
            int divisor = b, t_count = 1;
            while (a - divisor > divisor) {
                divisor += divisor;
                t_count += t_count;
            }
            a -= divisor;
            ans += t_count;
        }
        return (flag ? -ans : ans);
    }
};

int main(){
//    ios::sync_with_stdio(false);
//    ifstream cin("data.txt");
//    freopen("data.txt", "r", stdin);
    return 0;
}

/**
 * @date 2022-09-12
 * @brief 倍增的思想，具体细节还是比较多的。
 */